<?php
class Modelo_base extends DataMapper {
    function __construct($id = NULL) {
        parent::__construct($id);
    }

    // Prepara las fechas para almacenarlas en la BD o para utilizarlas en el sistema, invirtiendo el orden de los componentes
    function _prepararFecha($field)
    {
        $fecha = $this->{$field};
        
        if($fecha != "")
        {
            $fecha = str_replace("/", "-", $this->{$field}); # Estandarizo el formato de la fecha. Si se usan '/' lo reemplazo por '-'
            $partes_fecha = explode("-", $fecha); # Formato de fecha: DD-MM-AAAA / AAAA-MM-DD

            if($partes_fecha > 2) {
                # El formato de la fecha para guardar es AAAA-MM-DD, para el sistema es DD-MM-AAAA
                $fecha = $partes_fecha[2] . '-' . $partes_fecha[1] . '-' . $partes_fecha[0]; 
            }

            if($fecha == '00-00-0000' || $fecha == '0000-00-00') $fecha = '';
        }

        $this->{$field} = $fecha;
    }

    function _encrypt($field, $key) {
        $string = $this->{$field};

        // No me permite llamar al método de la librería, por eso vuelvo a copiar el código de encriptación
        $result = '';
        for($i=0; $i<strlen($string); $i++) {
            $char = substr($string, $i, 1);
            $keychar = substr($key, ($i % strlen($key))-1, 1);
            $char = chr(ord($char)+ord($keychar));
            $result.= $char . chr(ord($char)+ord($char));
        }

        $this->{$field} = base64_encode($result);
    }
}